package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;

import java.math.BigDecimal;
import java.util.Date;

public class AppointmentVo {
    private Long id;

    @Excel(name = "预约单号")
    private String appointmentNo;

    @Excel(name = "用户ID")
    private Long userId;

    @Excel(name = "就诊人ID")
    private Long patientId;

    @Excel(name = "科室ID")
    private Long departmentId;

    @Excel(name = "候诊时间")
    private String htime;

    @Excel(name = "门诊时间段")
    private String period;

    @Excel(name = "挂号费")
    private BigDecimal registrationFee;

    @Excel(name = "就诊状态")
    private String status; // 待就诊、已就诊、已取消

    @Excel(name = "挂号类型 普通号、专家号、特需号等")
    private String registrationType; // 专家号等

    @Excel(name = "就诊日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date visitDate;

    @Excel(name = "预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    // 查询条件字段
    private Date beginVisitDate;
    private Date endVisitDate;
    private String doctorName;
    private String patientName;

    // 显示字段
    private String name; // 就诊人姓名
    private String cardNo; // 就诊卡号
    private String idCard; // 身份证号
    private String phone; // 手机号码
    private String departmentName; // 科室名称

    // getter and setter methods
    // ... 省略getter和setter方法

    @Override
    public String toString() {
        return "AppointmentVo{" +
                "id=" + id +
                ", appointmentNo='" + appointmentNo + '\'' +
                ", userId=" + userId +
                ", patientId=" + patientId +
                ", departmentId=" + departmentId +
                ", htime='" + htime + '\'' +
                ", period='" + period + '\'' +
                ", registrationFee=" + registrationFee +
                ", status='" + status + '\'' +
                ", registrationType='" + registrationType + '\'' +
                ", visitDate=" + visitDate +
                ", createTime=" + createTime +
                ", beginVisitDate=" + beginVisitDate +
                ", endVisitDate=" + endVisitDate +
                ", doctorName='" + doctorName + '\'' +
                ", patientName='" + patientName + '\'' +
                ", name='" + name + '\'' +
                ", cardNo='" + cardNo + '\'' +
                ", idCard='" + idCard + '\'' +
                ", phone='" + phone + '\'' +
                ", departmentName='" + departmentName + '\'' +
                '}';
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAppointmentNo() {
        return appointmentNo;
    }

    public void setAppointmentNo(String appointmentNo) {
        this.appointmentNo = appointmentNo;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getPatientId() {
        return patientId;
    }

    public void setPatientId(Long patientId) {
        this.patientId = patientId;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public String getHtime() {
        return htime;
    }

    public void setHtime(String htime) {
        this.htime = htime;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public BigDecimal getRegistrationFee() {
        return registrationFee;
    }

    public void setRegistrationFee(BigDecimal registrationFee) {
        this.registrationFee = registrationFee;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getRegistrationType() {
        return registrationType;
    }

    public void setRegistrationType(String registrationType) {
        this.registrationType = registrationType;
    }

    public Date getVisitDate() {
        return visitDate;
    }

    public void setVisitDate(Date visitDate) {
        this.visitDate = visitDate;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getBeginVisitDate() {
        return beginVisitDate;
    }

    public void setBeginVisitDate(Date beginVisitDate) {
        this.beginVisitDate = beginVisitDate;
    }

    public Date getEndVisitDate() {
        return endVisitDate;
    }

    public void setEndVisitDate(Date endVisitDate) {
        this.endVisitDate = endVisitDate;
    }

    public String getDoctorName() {
        return doctorName;
    }

    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }

    public String getPatientName() {
        return patientName;
    }

    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }


    /**
     *     private Long id;
     *
     *     @Excel(name = "预约单号")
     *     private String appointmentNo;
     *
     *     @Excel(name = "用户ID")
     *     private Long userId;
     *
     *     @Excel(name = "就诊人ID")
     *     private Long patientId;
     *
     *     @Excel(name = "科室ID")
     *     private Long departmentId;
     *
     *     @Excel(name = "候诊时间")
     *     private String htime;
     *
     *     @Excel(name = "门诊时间段")
     *     private String period;
     *
     *     @Excel(name = "挂号费")
     *     private BigDecimal registrationFee;
     *
     *     @Excel(name = "就诊状态")
     *     private String status; // 待就诊、已就诊、已取消
     *
     *     @Excel(name = "挂号类型 普通号、专家号、特需号等")
     *     private String registrationType; // 专家号等
     *
     *     @Excel(name = "就诊日期")
     *     @JsonFormat(pattern = "yyyy-MM-dd")
     *     private Date visitDate;
     *
     *     @Excel(name = "预约时间")
     *     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     *     private Date createTime;
     *
     *     // 查询条件字段
     *     private Date beginVisitDate;
     *     private Date endVisitDate;
     *     private String doctorName;
     *     private String patientName;
     *
     *     // 显示字段
     *     private String name; // 就诊人姓名
     *     private String cardNo; // 就诊卡号
     *     private String idCard; // 身份证号
     *     private String phone; // 手机号码
     *     private String departmentName; // 科室名称
     *
     *     // getter and setter methods
     *     // ... 省略getter和setter方法
     * }
     */
}
